void main() {
  // 函数类型的变量 Function
  Function dw = drinkWater;
  // dw('蜜雪冰城');

  // 测试 回调函数
  // useCallBack(() {
  //   print('许久未见，你过得咋样。最近哥们手头有点紧，有没有钱，没钱没关系，贷款了解一下');
  // });

  useCallBack(() {
    print('之前吃猪脚饭的钱，结一下');
  });
}

// 1. 定义函数+赋值给变量
drinkWater(String drink) {
  print('$drink 真好喝，顿顿顿');
}

// 2. 函数作为参数，内部调用
// 函数内部有一部分的逻辑无法确定，让用户传递进来
// onclick(callback),setTimeout(callback)
useCallBack(Function callback) {
  // 1. 开头
  print('叮叮叮有人敲门');
  // 2.  不确定
  callback();
  // 3.结尾
  print('关门送客');
}
